import Vue from 'vue'
import Vuex from 'vuex'
// 导入本地存储中封装的 setItem, getItem 方法
import { setItem, getItem } from '@/utils/storage.js'

Vue.use(Vuex)

// 声明 token 的 key 值
const TOKNE_KEY = 'TOUTIAO_USER'

export default new Vuex.Store({
  state: {
    // 存储当前登录的用户信息
    // 从本地取出
    // TOKNE_KEY || null一开始是为空(初始化)
    // JSON.stringify():用于将JavaScript对象转化为JSON字符串
    // JSON.parse():用于将JSON字符串转化为一个对象
    // user: JSON.parse(window.localStorage.getItem(TOKNE_KEY || null))
    user: getItem(TOKNE_KEY)
  },
  getters: {},
  mutations: {
    // 对 user 进行修改
    setUser(state, data) {
      state.user = data
      // 为了防止刷新丢失，我们需要把数据备份到本地存储
      // window.localStorage.setItem(TOKNE_KEY, JSON.stringify(state.user))
      setItem(TOKNE_KEY, state.user)
    }
  },
  actions: {},
  modules: {}
})
